home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 1
/
Nebula One.iso
/
Misc
/
SciCalc1.1
/
Source
/
Calculator.h
< prev
next >
Wrap
Text File
|
1994-04-07
|
4KB
|
105 lines
/***(Calculator.h)*************************************************************
*H* Input processing logic for Calculator V0.0, 09-FEB-91 *
*C* V0.0 09-FEB-91 Initial version --MDM *
******************************************************************************/
#import <objc/Object.h>
#import "OperatorStack.h" /* Calculator OperatorStack Class Definition */
#import "ValueStack.h" /* Calculator ValueStack Class Definition */
@interface Calculator:Object
{
long OVcalcAcceptMode; /* What kinds of input are acceptable */
int OVcalcBase; /* Current number base of calculator */
id OVcalcBitwiseMtx; /*(Outlet)Bitwise operator button matrix object */
int OVcalcCEIndex; /* Display string Clear Entry index */
id OVcalcDigitMtx; /*(Outlet)Main digit button matrix object */
id OVcalcDigitPBtn; /*(Outlet)Decimal point push button */
id OVcalcDisplay; /*(Outlet)Calculator's simulated LCD display */
char OVcalcDspStr[256]; /* string of values & operators to be displayed */
BOOL OVcalcEqualized; /* Has expression just been equaled */
BOOL OVcalcFrozen; /* flag to freeze calculator on error */
BOOL OVcalcFunctionMode; /* Current method of function operation */
BOOL OVcalcHyperbolic; /* Interpret Trig funcs in Hyperbolic mode */
BOOL OVcalcInverse; /* Interpret Trig funcs in Inverse mode */
int OVcalcMaxDigits; /* Maximum allowable digits in operand */
char OVcalcMemDspStr[80]; /* Formated value in memory */
id OVcalcMemCellLabel; /*(Outlet) Active memory label */
int OVcalcMemoryCell; /* Index of currently active memory cell */
id OVcalcMemoryDsp; /*(Outlet)Calculators memory LCD display */
double OVcalcMemoryVal[26]; /* Binary value in memory cell */
int OVcalcMetric; /* Current trignometric unit metric */
int OVcalcParenBalance; /* Current number of open parenthesis */
id OVcalcPrecsnDsp; /*(Outlet)Text field for displaying current precision */
id OVcalcPrecsnSldr; /*(Outlet)Slider for setting current precision */
int OVcalcPrecsnVal; /* Current output precision value */
int OVcalcUnit; /* Bytes per operand value in Bin/Hex/Oct */
id OVcalcUnitMatrix; /*(Outlet)Unit radio button matrix id */
char OVcalcValStr[80]; /* string of digits of current input value */
id OVcalcWindow; /*(Outlet)Main window in which calculator is drawn */
OperatorStack *OVopStack; /* stack of unprocessed operators */
ValueStack *OVvalStack; /* stack of unprocessed values */
int OVtag; /* to impersonate a Control object */
}
+ KeyBoardEquivalent:(NXEvent *)event;
+ PasteExpression:(char*)expString Length:(int)expLength;
- init;
- AdjustPrecision;
- AllClear:sender;
- BitwiseAnd:sender;
- BitwiseLsh:sender;
- BitwiseNot:sender;
- BitwiseOr:sender;
- BitwiseRsh:sender;
- BitwiseXor:sender;
- ChangeBase:sender;
- ChangeFunctionMode:sender;
- ChangeHyperbolic:sender;
- ChangeInverse:sender;
- ChangeMetric:sender;
- ChangePrecision:sender;
- ChangeSign:sender;
- ChangeUnit:sender;
- ClearEntry:sender;
- CloseParen:sender;
- Cosine:sender;
- Digit:sender;
- Divide:sender;
- EnterPi:sender;
- Equals:sender;
- Exponential:sender;
- Factorial:sender;
- FormatValue:(double)operand :(char*)fmtstr;
- Integer:sender;
- MemoryClear:sender;
- MemoryRecall:sender;
- MemorySelect:sender;
- MemoryStore:sender;
- Minus:sender;
- Modify:sender;
- Multiply:sender;
- OpenParen:sender;
- Plus:sender;
- ProcessDigit:(char) dgtchr;
- ProcessFunction: (int) opcode: (char *) symbol;
- (double) ProcessOpcode :(int)opcode :(double)operand1 :(double)operand2;
- ProcessOperator: (int) opcode: (char *) symbol;
- Reciprocal:sender;
- ReduceExpression: (int) curopr;
- ScanValue:(char*)fmtstr :(double*) operand;
- Sine:sender;
- SyntaxError: (int) opcode: (char *) symbol;
- Tangent:sender;
- TenToTheX:sender;
- ValueEntered;
- XSquared:sender;
- XToTheY:sender;
- setTag:(int)anInt;
- (int) selectedTag;
@end